// BEGIN CUT HERE
#define _USE_MATH_DEFINES
#define _CRT_SECURE_NO_WARNINGS
// END CUT HERE
#include <algorithm>
#include <bitset>
#include <cassert>
#include <cfloat>
#include <cmath>
#include <complex>
#include <cstdio>
#include <ctime>
#include <deque>
#include <fstream>
#include <iostream>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <string>
#include <utility>
#include <vector>
using namespace std;

#define all(x) (x).begin(),(x).end()
typedef long long ll;
// BEGIN CUT HERE
// END CUT HERE
// BEGIN CUT HERE
typedef vector<int> VI;
typedef vector<string> VS;
typedef vector<VI> VVI;
// BEGIN CUT HERE
// END CUT HERE
// BEGIN CUT HERE
typedef pair<int,int> PII;
typedef vector<PII> VPII;
#define X first
#define Y second
#define mp make_pair
// BEGIN CUT HERE
// END CUT HERE
// BEGIN CUT HERE
#define two(x) (1<<(x))
#define twoll(x) ((long long)1<<(x))
#define contain(s,x) (((s)&two(x))!=0)
#define containll(s,x) (((s)&twoll(x))!=0)
// BEGIN CUT HERE
// END CUT HERE
// BEGIN CUT HERE
#define db(a) cout << #a << "=" << a << " "
#define dbn cout << endl
template<class T> void print(vector<T> v) { cout << "["; if (v.size()) cout << v[0]; for (unsigned i = 1; i < v.size(); i++) cout << ", " << v[i];cout << "]\n"; }
template<class T> void print(vector<vector<T> > v) { cout << "[ ---\n"; if (v.size()) cout << " ", print(v[0]); for (unsigned i = 1; i < v.size(); i++) cout << " ", print(v[i]); cout << "--- ]\n"; }
template<class T1, class T2> void print(pair<T1,T2> p) { cout << "{" << p.first << ", " << p.second << "}"; }
template<class T1, class T2> void print(vector<pair<T1,T2> > v) { cout << "["; if (v.size()) print(v[0]); for (unsigned i = 1; i < v.size(); i++) cout << ", ", print(v[i]);cout << "]\n"; }
template<class T> inline T sqr(T x) { return x*x; }
// BEGIN CUT HERE
// END CUT HERE
// BEGIN CUT HERE
template<class T> inline int chkmin(T& a, T b) { if (a>b) {a=b; return 1;} return 0; }
template<class T> inline int chkmax(T& a, T b) { if (a<b) {a=b; return 1;} return 0; }
// BEGIN CUT HERE
// END CUT HERE
// BEGIN CUT HERE
string STR(int n) { char tmp[20]; sprintf(tmp,"%d",n); return tmp; }
int INT(string s) { return atoi(s.c_str()); }
template <class Ty, class Tx> Ty to(const Tx &x) { Ty y; stringstream ss; ss<<x; ss>>y; return y; }
// BEGIN CUT HERE
// END CUT HERE
// BEGIN CUT HERE
const int INF = 1000000007;
const double EPS = 1e-10;
// BEGIN CUT HERE
#define TESTCASE 
// END CUT HERE

struct $CLASSNAME$
{
	$RC$ $METHODNAME$($METHODPARMS$)
	{

	}
};

$BEGINCUT$
$TESTCODE$

int main(int argc, char *argv[]) {
	freopen("DATA.in", "rt", stdin);
	freopen("DATA.ou", "wt", stdout);

	if (argc == 1) {
		moj_harness::run_test(TESTCASE);
	} else {
		for (int i=1; i<argc; ++i)
			moj_harness::run_test(atoi(argv[i]));
	}

	return 0;
}
$ENDCUT$
